﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.Collections.ObjectModel;

namespace Oroboros.Save_Data
{
    public class DailyEventsSaveData : INotifyPropertyChanged
    {
        private ObservableCollection<string> _DeathEvents = new ObservableCollection<string>();
        private ObservableCollection<string> _GenericEvents = new ObservableCollection<string>();
        private ObservableCollection<string> _HealthEvents = new ObservableCollection<string>();
        private ObservableCollection<string> _MoraleEvents = new ObservableCollection<string>();
        private ObservableCollection<string> _PriorityEvents = new ObservableCollection<string>();
        private ObservableCollection<string> _SkillImprovements = new ObservableCollection<string>();
        private ObservableCollection<string> _TaskEvents = new ObservableCollection<string>();
        private ObservableCollection<string> _TeachingEvents = new ObservableCollection<string>();

        public ObservableCollection<string> DeathEvents { get { return _DeathEvents; } set { Changed("DeathEvents"); _DeathEvents = value; } }
        public ObservableCollection<string> GenericEvents { get { return _GenericEvents; } set { Changed("GenericEvents"); _GenericEvents = value; } }
        public ObservableCollection<string> HealthEvents { get { return _HealthEvents; } set { Changed("HealthEvents"); _HealthEvents = value; } }
        public ObservableCollection<string> MoraleEvents { get { return _MoraleEvents; } set { Changed("MoraleEvents"); _MoraleEvents = value; } }
        public ObservableCollection<string> PriorityEvents { get { return _PriorityEvents; } set { Changed("PriorityEvents"); _PriorityEvents = value; } }
        public ObservableCollection<string> SkillImprovements { get { return _SkillImprovements; } set { Changed("SkillImprovements"); _SkillImprovements = value; } }
        public ObservableCollection<string> TaskEvents { get { return _TaskEvents; } set { Changed("TaskEvents"); _TaskEvents = value; } }
        public ObservableCollection<string> TeachingEvents { get { return _TeachingEvents; } set { Changed("TeachingEvents"); _TeachingEvents = value; } }

        public event PropertyChangedEventHandler PropertyChanged;
        public void Changed(string n)
        {
            if (!string.IsNullOrEmpty(n))
                PropertyChanged(this, new PropertyChangedEventArgs(n));
        }
    }
}
